1. Field of the Invention
The present invention is directed to maintaining duplicate copies of at least a portion of a computer display screen at two or more physically remote locations and, more particularly, to efficiently communicating changes in one display screen to one or more other display screens.
2. Description of the Related Art
There are a number of applications which produce copies of all or a portion of a computer display screen on more than one data processing system. Examples include remote access software, application sharing and various types of teleconferencing. The simplest way to produce copies of a display screen on two computer systems is to send the entire contents of the screen on a periodic basis. This requires transmitting large amounts of data. For example, approximately 800 kilobytes are used to define a 1024.times.768 display screen having 256 colors. As video resolution and color depth continue to increase, the amount of data that must be transferred becomes prohibitive, especially when using a low bandwidth connection, such as a modem. Although compression can be used to reduce the amount of data that is sent, compression may require significant processor (CPU) resources and it is preferable to reduce the amount of data prior to compression.
Another alternative is to send the same instructions used to generate the display screen to the computer systems displaying a copy of the display screen. This requires that essentially the same software is being executed on all of the computer systems and that the appropriate screen commands can be intercepted or routed to the appropriate systems. Another technique is disclosed in U.S. Pat. Nos. 5,241,625 and 5,491,780 which depend upon "hooks" into the operating system software. Some operating systems, such as Windows NT, provide a secure operating system environment in which it is difficult to intercept commands that affect the display screen and therefore, the initial program generating the display must be capable of routing the display screen commands to remote location(s).
One way to decrease the amount of data that must be sent without intercepting system commands is to only send differences from the previous screen that was sent. Often, only a small area of the screen is changed and there is no need to send the entire contents of the screen each time, thereby significantly reducing the bandwidth required to update the remote display screen quickly. Assuming that two computer systems are using this technique to maintain copies of a window on local and remote display screens, the local system will transfer a copy of the entire screen to the remote system and store a copy as a reference image. Periodically, the local system will read the local display screen and perform a logical exclusive OR (XOR) with the reference image and store the result of this operation in what will be called a delta buffer. The delta buffer contains only the differences between the reference image and the current screen contents. The delta buffer is then compressed and transmitted to the remote system which decompresses the transmitted data and updates the remote display screen. Both the local and remote systems save the updated screen contents as a new reference image and the procedure is repeated.
The delta buffer technique has the distinct advantage of greatly reducing the amount of data that must be transmitted. This significantly improves the performance in limited bandwidth environments which is highly desirable today when screen data is often very dense compared to available bandwidth. However, the delta buffer technique has a drawback in the amount of memory required. Three blocks of memory the size of the video memory are required, one for the reference image, another for the current screen contents and another for the result of the logical XOR.